package com.company;

import java.util.Arrays;

public class A_11InsterSort {
    public static void main(String[] args) {

        /*
        * 插入排顺序
        *
        *   从第二个数为基准数开始向前比较
        * 如果前一个数大于此数 前一个数向后赋值  并且记录前一个数的位置
        * 否则就 基数就与记录的数交换位置 break  没必要向前比较了
        *
        *
        * */
        int[] nums = {2,1,4,5,2,5,7,8,9,6,2,43};
        int len = nums.length;
        for(int i = 1; i < len ; i++){
            int temp = nums[i];
            int j = 0;
            for (j = i-1 ; j > -1; j--){
                if (nums[j] >   temp){
                    nums[j + 1 ] = nums[j];
                }else {  //  结束的赋值不能在这里  应为这个条件可能用不到 循环自动结束
                    break;
                }
            }
            if (nums[j+1] != temp){
                nums[j+1] = temp;

            }



        }
        System.out.println(Arrays.toString(nums));

    }
}
